// 栈：遇到左括号，一律推入栈中，遇到右括号，讲栈顶部元素拿出，如果不匹配则返回 false，如果匹配
// 则继续循环

var isValid = function (s) {
  let arr = [];
  let len = s.length;
  if (len % 2) return false;
  for (let i = 0; i < len; i++) {
    let letter = s[i];
    switch(letter) {
      case "(": {
        arr.push(letter);
        break;
      }
      case "[": {
        arr.push(letter);
        break;
      }
      case "{": {
        arr.push(letter);
        break;
      }
      case ")": {
        if (arr.pop() !== "(") return false
        break;
      }
      case "]": {
        if (arr.pop() !== "[") return false
        break;
      }
      case "}": {
        if (arr.pop() !== "{") return false
        break;
      }
    }
  }
  return !arr.length
}